# CentOS的iptables防火墙
# 安装iptables服务
yum install iptables-services
# 启动服务
systemctl start iptables #或 servcie iptables start
# 设置开机启动
systemctl enable iptables
注意:如果有firewalld已开机启动,先禁用firewalld,
systemctl disable firewalld
# 定义规则(方法一)
# 命令定义常规规则
#删除所有规则(最好先备份) -F(flush) iptables -F #删除用户定义的规则(delete-chain) iptables -X #重置规则计数器(zero) iptables -Z #允许本机访问规则(常规) iptables -A INPUT -i lo -j ACCEPT #或 iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允许已建立或相关连的访问 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #允许本机向外的所有访问 iptables -A OUTPUT -j ACCEPT #允许访问22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允许访问80端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许FTP服务的端口21,20 iptables -A INPUT -p tcp --dport 20 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT #禁止未允许的规则访问 iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT #限制某个IP访问 iptables -I INPUT -s 192.168.2.7 -j DROP #限制192.168.2.1-192.168.2.254IP段 iptables -I INPUT -s 192.168.2.0/24 -j DROP
注意:
- iptables -A :
A
选项,即是append,一般只在第一次定义规则时用,会在尾部追加。 - iptables -I:增加规则要用
I
,即是insert,会在头部插入。
- iptables -A :
# 显示所有的规则
iptables -L -n
# 根据序号删除规则
#先用带序号方式显示规则 iptables -L -n --line-numbers #删除INPUT里13序号的规则 iptables -D INPUT 13
# 持久化规则
注:即把规则写入文件,用iptables命令修改的规则只在内存里,重启后会失效。
#把规则从内存里写入/etc/sysconfig/iptables service iptables save #或者用以下命令写入 iptable-save >/etc/sysconfig/iptables
# 定义规则(方法二)
# 直接修改规则文件
规则保存在
/etc/sysconfig/iptables
文件里vim /etc/sysconfig/iptables
# 重启iptables
systemctl restart iptables.service #或 service iptables restart
注意:如果防火墙规则保存在其它文件,例如保存在
/etc/sysconfig/iptables.old
,则用以下命令恢复iptables-restore < /etc/sysconfig/iptables.old
。
# 最佳实践
iptables running
#把内存里的规则写到一个文件里 iptables-save > /etc/sysconfig/iptables.now #编辑新规则文件 vim /etc/sysconfig/iptables.now #加载新规则文件 iptables-restore < /etc/sysconfig/iptables.now
iptables stop
#备份旧的规则 cp /etc/sysconfig/iptables /etc/sysconfig/iptables.old_stop #编辑规则文件 vim /etc/sysconfig/iptables #重启加载规则文件 systemctl restart iptables
总结:
- 把规则写在一个新文件里,用
iptables-restore
加载。 - 或者把旧的规则文件先备份,编辑规则文件,重启
iptables
。
- 把规则写在一个新文件里,用
← linux centOS分区随记 →